When transmitting binary data, it is common to employ an encoding that makes the resulting waveform more immune to noise, interference, and other channel degradations. There is a large class of transmission codes called block, or line codes, that are used to modulate binary symbols 0 and 1.
Line coding originated with the transmission of digital information across telephone lines, but the concept applies to any transmission line or channel. Different channel characteristics and performance requirements have led to the development of various types of line coding. Information rate, ones density, maximum run length, and error propagation are considerations that affect the choice of a line code.
To maximize information rate, or transmission efficiency, the transmitted signal should require as small a bandwidth as possible. For mBnB line codes, the information rate is expressed as m/n. The smaller the information rate of a line code, the greater the bandwidth requirement of the code.
It is desirable to have a code that contains little or no DC content. The DC content of a line code refers to the ratio of zeros and ones, or ones density, in the encoded bit stream. An equal number of zeroes and ones is described as having no DC content or having balanced DC content.
The waveform produced by a line code should contain sufficient timing information (i.e., sufficient transitions from logic level 0 to logic level 1) to enable the receiver to synchronize with the transmitter and to properly demodulate the transmitted signal. The amount of timing information in a line code is often measured by the maximum number of consecutive zeros or ones (i.e., maximum run length) that can occur in an encoded bit stream. This measure is useful because long runs of zeros or ones can cause the receiver to lose synchronization with the transmitter.
The error propagation of a line code should be as small as possible. Error propagation is the expected number of errors in an m-bit decoded word, assuming a single bit error in the transmitted n-bit word. Error propagation greater than m/n indicates that the line code increases the bit error rate for the decoded bit stream.
For example, a user may wish to transmit two binary bits (i.e., m=2). All possible combinations of two binary bits are 00, 01, 10, and 11. A 2B3B line code may be used to transmit the two binary bits. That is, each two binary bits to be transmitted will be encoded as three binary bits (i.e., n=3) and then transmitted. Such a line code has an information rate of m/n=2/3. One possible encoding map M for a 2B3B line code is 00→010, 01→100, 10→101, 11→011. The encoding map M has a ones density between 1/3 and 2/3. Each codeword includes either one bit that is a 1 or two bits that are a 1. So, an encoded bit stream will be between 1/3 and 2/3 ones. The maximum run length for the encoding map is three (i.e., sending 011 and then 100 results in three consecutive 1s being sent, sending 100 and then 011 results in three consecutive 0s being sent). One possible decoding map N that can be used to decode codewords encoded by the encoding map M described above is 000→00, 011→11, 010→00, 011→11, 100→01, 101→10, 110→01, 111→10. The error propagation of the M and N is calculated as follows. If a user wishes to transmit 00, it will be encoded as 010. A one-bit error during transmission (i.e., the number of errors expected in a transmission channel that has a Guassian distribution of errors) would result in 010 being received at the transmitter as either 110, 000, or 011. Decoding these three codewords results in 01, 00, and 11, respectively. These decoded words differ from the intended word (00) by one, zero, and two bits, respectively, for an error propagation of as much as two bits (11). Therefore, this 2B3B line code could turn a one-bit error caused by the transmission channel into a two-bit error in the decoded word.
U.S. Pat. No. 4,486,739, entitled “BYTE ORIENTED DC BALANCED (0,4) 8B/10B, PARTITIONED BLOCK TRANSMISSION CODE,” discloses a 8B10B code that is partitioned into a 5B6B code and a 3B4B code. The present invention does not partition codes as does U.S. Pat. No. 4,486,739. U.S. Pat. No. 4,486,739 is hereby incorporated by reference into the specification of the present invention.
U.S. Pat. No. 4,501,000, entitled “METHOD OF CODING BINARY DATA,” discloses a coding method that uses separation blocks of bits to concatenate information blocks of bits. The present invention does not use separation blocks of bits to concatenate information blocks of bits as does U.S. Pat. No. 4,501,000. U.S. Pat. No. 4,501,000 is hereby incorporated by reference into the specification of the present invention.
U.S. Pat. No. 4,665,517, entitled “METHOD OF CODING TO MINIMIZE DELAY AT A COMMUNICATION NODE,” discloses a 8B10B code that is partitioned into a 5B6B code and a 3B4B code. The present invention does not partition codes as does U.S. Pat. No. 4,665,517. U.S. Pat. No. 4,665,517 is hereby incorporated by reference into the specification of the present invention.
U.S. Pat. No. 4,811,361, entitled “METHOD AND APPARATUS FOR TRANSMISSION OF DIGITAL DATA,” discloses a method and device of encoding that uses flags such as start delimiter, and delimiter between encoded sequences. The present invention does not use such flags as does U.S. Pat. No. 4,811,361. U.S. Pat. No. 4,811,361 is hereby incorporated by reference into the specification of the present invention.
U.S. Pat. No. 4,818,995, entitled “PARALLEL TRANSMISSION SYSTEM,” discloses an encoding method where timing alignment of encoded blocks is done prior to transmission. The present invention does not perform timing alignment of encoded blocks as does U.S. Pat. No. 4,818,995. U.S. Pat. No. 4,818,995 is hereby incorporated by reference into the specification of the present invention.
U.S. Pat. No. 4,882,583, entitled “MODIFIED SLIDING BLOCK CODE FOR LIMITING ERROR PROPAGATION,” discloses a method of substituting a plurality of ones for each singleton one in an encoded sequence. The present invention does not substitute a plurality of ones for a singleton one in an encoded sequence as does U.S. Pat. No. 4,882,583. U.S. Pat. No. 4,882,583 is hereby incorporated by reference into the specification of the present invention.
U.S. Pat. No. 4,924,463, entitled “DATA CODING METHOD FOR USE IN DIGITAL COMMUNICATION SYSTEMS,” discloses a method of interleaving encoded sequences. The present invention does not interleave encoded sequences as does U.S. Pat. No. 4,924,463. U.S. Pat. No. 4,924,463 is hereby incorporated by reference into the specification of the present invention.
U.S. Pat. No. 5,022,051, entitled “DC-FREE LINE CODE FOR ARBITRARY DATA TRANSMISSION,” discloses a method of encoding that appends an indicator bit of known value to an encoded sequence, determining the polarity of the result, and transmitting the result inverted or not, depending on whether or not the polarity matches that of previous transmissions. The present invention does not append an indicator bit or invert a sequence based on the polarity of the sequence as does U.S. Pat. No. 5,022,051. U.S. Pat. No. 5,022,051 is hereby incorporated by reference into the specification of the present invention.
U.S. Pat. No. 5,200,979, entitled “HIGH SPEED TELECOMMUNICATION SYSTEM USING NOVEL LINE CODE,” discloses a method of encoding that includes a transition bit and a DC-bias bit in each encoded sequence. The present invention does not include a transition bit or a DC-bias bit in each encoded sequence as does U.S. Pat. No. 5,200,979. U.S. Pat. No. 5,200,979 is hereby incorporated by reference into the specification of the present invention.
U.S. Pat. No. 5,438,621, entitled “DC-FREE LINE CODE AND BIT AND FRAME SYNCHRONIZATION FOR ARBITRARY DATA TRANSMISSION,” discloses a method of encoding that adds bits to an encoded sequence and includes control and fill words. The present invention does not add bits to encoded sequences or includes control of fill words as does U.S. Pat. No. 5,438,621. U.S. Pat. No. 5,438,621 is hereby incorporated by reference into the specification of the present invention.
U.S. Pat. No. 5,625,644, entitled “DC BALANCED 4B/8B BINARY BLOCK CODE FOR DIGITAL DATA COMMUNICATIONS,” discloses an encoding method that employs a start bit and an end bit with each encoded sequence. The present invention does not employ a start bit and an end bit as does U.S. Pat. No. 5,625,644. U.S. Pat. No. 5,625,644 is hereby incorporated by reference into the specification of the present invention.
U.S. Pat. No. 6,333,704, entitled “CODING/DECODING SYSTEM OF BIT INSERTION/MANIPULATION LINE CODE FOR HIGH-SPEED OPTICAL TRANSMISSION SYSTEM,” discloses an encoding method where additional bits are inserted into encoded sequences. The present invention does not insert bits into encoded sequences as does U.S. Pat. No. 6,333,704. U.S. Pat. No. 6,333,704 is hereby incorporated by reference into the specification of the present invention.
U.S. Pat. No. 6,362,757, entitled “METHOD AND APPARATUS FOR ENCODING MB810 LINE CODE WITH THE CHARACTERISTICS OF MINIMUM BANDWIDTH AND DC-FREE,” discloses an encoding method that employs a digital sum variation and an alternate sum variation. The present invention does not employ a digital sum variation or an alternate sum variation as does U.S. Pat. No. 6,362,757. U.S. Pat. No. 6,362,757 is hereby incorporated by reference into the specification of the present invention.
U.S. Pat. No. 6,604,222, entitled “BLOCK CODE TO EFFICIENTLY CORRECT ADJACENT DATA AND/OR CHECK BIT ERRORS,” discloses a method of performing a logic operation on encoded bits to determine if an error is present. The present invention does not perform a logic function on encoded bits to determine if an error is present as does U.S. Pat. No. 6,604,222. U.S. Pat. No. 6,604,222 is hereby incorporated by reference into the specification of the present invention.
U.S. Pat. No. 6,877,131, entitled “APPARATUS AND METHOD FOR GENERATING BLOCK CODE IN A MOBILE COMMUNICATION SYSTEM,” discloses an encoding method that uses a Reed-Muller code created using a Gold sequence. The present invention does not use a Reed-Muller code created from a Gold sequence as does U.S. Pat. No. 6,877,131. U.S. Pat. No. 6,877,131 is hereby incorporated by reference into the specification of the present invention.
There is a need for a method of minimizing error propagation in a line code, subject to information rate, ones density, and maximum run length. The present method is a method of generating a line code so that error propagation is minimized.